﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PMQLNhaHang.CustomControl;
using System.Resources;
using QLNH_DAO_WS;

namespace PMQLNhaHang
{
    public partial class fmPhucVu : Form
    {
        private List<exPictureBox> dsBanAnPT;
        private int indexPBClick = -1;

        public fmPhucVu()
        {
            InitializeComponent();
            dsBanAnPT = new List<exPictureBox>();
        }
        #region Event
        private void fmPhucVu_Load(object sender, EventArgs e)
        {
            var dsKhuVuc = new List<KhuVucDTO>();
            #region dữ liệu giả test lỗi khu vực
            for (int i = 0; i < 3; i++)
            {
                KhuVucDTO temp = new KhuVucDTO();
                temp.MaKhuVuc = i;
                temp.SoBan = 10;
                temp.Ten = "Khu Vực " + i.ToString();
                dsKhuVuc.Add(temp);
            }
            #endregion
            TheHienDanhSachKhuVu(dsKhuVuc);
            exlbKhuVuc.SelectedIndex = 0;

            //Load dữ liệu cho List<BanAnDTO>
            var dsBanAn = new List<BanAnDTO>();
            #region dữ liệu giả test lỗi Bàn ăn
            for (int i = 0; i < 16; i++)
            {
                BanAnDTO temp = new BanAnDTO();
                temp.MaBanAn = i;
                temp.Ten = "Bàn A" + i.ToString();
                dsBanAn.Add(temp);
            }
            #endregion
            TheHienDanhSachBanAn(dsBanAn);
        }
        private void exlbKhuVuc_Click(object sender, EventArgs e)
        {
            var sen = sender;
        }
        private void exlbKhuVuc_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Load dữ liệu lên cho List<BanAnDTO> dsBanAn khi thay đổi khu vực
            //load danh sách bàn theo KhuVucItem.Id
            //gọi phương thức thể hiện danh sách bàn ăn
            exListBoxItem sel = (exListBoxItem)exlbKhuVuc.SelectedItem;
  
        }
        private void cbNhomMonAn_SelectedIndexChanged(object sender, EventArgs e)
        {
            //load dữ liệu cho ds món ăn
            //TheHienDanhSachMonAn();
        }
        private void btnThanhToan_Click(object sender, EventArgs e)
        {
            //Thanh toán hóa đơn
        }
        private void btnThemMonAn_Click(object sender, EventArgs e)
        {
            //Thêm món ăn từ danh sách
           

        }
        private void btnBoMonAn_Click(object sender, EventArgs e)
        {
            //Bỏ món ăn từ danh sách
        }

        //Sự kiện của picturebox khi click
        private void tempPic_Click(object sender, EventArgs e)
        {
            exPictureBox ptb = (exPictureBox)sender;
            indexPBClick = ptb.IdTable;             //gán ngược lại để xác định bàn nào đang được click
            KhoiPhucTrangTHaiDanhSachBanAn();
            PBChangeColorClick(ptb);
            LoadInformatioṇ();                      //lấy thông tin phiếu gọi món để biding vô bảng phục vụ 
            // và tính toán cho cái thông tin bàn ăn
        }


        private void tsmiKichHoat_Click(object sender, EventArgs e)
        {
            dsBanAnPT[indexPBClick].IsActive = true;
            dsBanAnPT[indexPBClick].Refresh();
        }
        private void tsmiThanhToan_Click(object sender, EventArgs e)
        {
            var abc = sender;
        }

        private void tsmiChuyenBan_Click(object sender, EventArgs e)
        {

        }

        private void tsmiGhepBanAn_Click(object sender, EventArgs e)
        {

        }

        private void tsmiHuyBanAn_Click(object sender, EventArgs e)
        {

        }
        #endregion


        #region Method

        private void TheHienDanhSachKhuVu(List<KhuVucDTO> dsKhuVuc)
        {
            ResourceManager rm = new ResourceManager(typeof(exListBox));
            Image img = (Image)rm.GetObject("Table_icon");
            for (int i = 0; i < dsKhuVuc.Count; i++)
            {
                string detail = dsKhuVuc[i].SoBan.ToString();
                exListBoxItem ex = new exListBoxItem(dsKhuVuc[i].MaKhuVuc, dsKhuVuc[i].Ten, detail, img);
                exlbKhuVuc.Items.Add(ex);
            }
        }
        private void TheHienDanhSachBanAn(List<BanAnDTO> dsBanAn)
        {
            exPictureBox tempPic;
            int xlocation, ylocation;
            int exptHeigh = 100, exptWidth = 85;
            for (int i = 0; i < dsBanAn.Count; i++)
            {
                tempPic = new exPictureBox();
                xlocation = exptWidth + 40;
                ylocation = exptHeigh + 40;
                tempPic.Location = new System.Drawing.Point(xlocation * (i % 3), ylocation * (i / 3));
                tempPic.Location = new System.Drawing.Point(xlocation, ylocation);
                tempPic.Name = dsBanAn[i].MaBanAn.ToString();
                tempPic.NameTable = dsBanAn[i].Ten;
                tempPic.IdTable = dsBanAn[i].MaBanAn;
                tempPic.Size = new System.Drawing.Size(exptWidth, exptHeigh);
                tempPic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
                tempPic.TabIndex = 0;
                tempPic.TabStop = false;
                tempPic.ContextMenuStrip = cmsPictureEX;
                tempPic.Click += new EventHandler(tempPic_Click);
                flowLayoutPanel1.Controls.Add(tempPic);
                dsBanAnPT.Add(tempPic);
            }
        }
        private void TheHienDanhSachMonAn(List<MonAnDTO> DSMonan)
        {
        }

        private void KhoiPhucTrangTHaiDanhSachBanAn()
        {
            for (int i = 0; i < dsBanAnPT.Count; i++)
            {
                dsBanAnPT[i].BackColor = System.Drawing.SystemColors.Control;
                dsBanAnPT[i].BorderStyle = System.Windows.Forms.BorderStyle.None;
            }
        }
        private void PBChangeColorClick(exPictureBox ptb)
        {
            ptb.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))),
                                                          ((int)(((byte)(192)))));
            ptb.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
        }
        private void LoadInformatioṇ()
        {
            //
        }
        #endregion
    }
}
